﻿/**
 * 
 * @file   FITKAcousticsHDF5Constants.h
 * @brief  HDF5常数集
 * @author TanDongYang (tandongyang@diso.cn)
 * @date   2024-11-21
 * 
 */

#ifndef FITKACOUSTICSHDF5CONSTAMTS_H
#define FITKACOUSTICSHDF5CONSTAMTS_H

#include "FITKAcousticsPostDataAPI.h"
#include "FITK_Kernel/FITKCore/FITKAbstractDataObject.h"

namespace Acoustics
{
    class FITKAcousticsHDF5Frequencies;

    /**
     * @brief   HDF5常数集
     * @author  TanDongYang (tandongyang@diso.cn)
     * @date    2024-11-21 
     */
    class FITKAcousticsPostDataAPI FITKAcousticsHDF5Constants :
        public Core::FITKAbstractDataObject
    {
        FITKCLASS(Acoustics, FITKAcousticsHDF5Constants);
    public:
        /**
         * @brief   Construct a new FITKAcousticsHDF5Constants object
         * @author  TanDongYang (tandongyang@diso.cn)
         * @date    2024-11-21 
         */
        explicit FITKAcousticsHDF5Constants() = default;
        
        /**
         * @brief   Destroy the FITKAcousticsHDF5Constants object
         * @author  TanDongYang (tandongyang@diso.cn)
         * @date    2024-11-21 
         */
        virtual ~FITKAcousticsHDF5Constants();

        /**
         * @brief   获取频率数据集对象
         * @return  频率数据集对象
         * @author  TanDongYang (tandongyang@diso.cn)
         * @date    2024-11-21 
         */
        FITKAcousticsHDF5Frequencies* getFITKAcousticsHDF5Frequencies();

        /**
         * @brief   清空数据
         * @author  TanDongYang (tandongyang@diso.cn)
         * @date    2024-11-22 
         */
        void clearData();
    private:
        /**
         * @brief   频率数据集对象
         * @author  TanDongYang (tandongyang@diso.cn)
         * @date    2024-11-21 
         */
        FITKAcousticsHDF5Frequencies* _frequencies{};
    };
}

#endif // FITKACOUSTICSHDF5CONSTAMTS_H
